Skip to content

Add stackit-pod-identity-webhook image and configuration#53

Open
jastBytes wants to merge 14 commits intomainfrom
feat/STACKITSKE-6021-pod-identity-webhook
Open

Add stackit-pod-identity-webhook image and configuration#53
jastBytes wants to merge 14 commits intomainfrom
feat/STACKITSKE-6021-pod-identity-webhook

Conversation

@jastBytes
Copy link
Copy Markdown
Contributor

@jastBytes jastBytes commented Mar 13, 2026

How to categorize this PR?

/kind enhancement

What this PR does / why we need it:
The changes introduce a new Pod Identity Webhook component for STACKIT cloud provider, adding a new chart for the webhook and its associated resources (Deployment, Service, RBAC, MutatingWebhookConfiguration). The webhook is configured to validate pod identities and enforce workload identity. The changes are integrated into the control plane and shoot system components, with proper configuration and error handling.

Special notes for your reviewer:

Breaking changes:

No breaking changes.

@ske-prow
Copy link
Copy Markdown

ske-prow bot commented Mar 13, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@ske-prow ske-prow bot added kind/enhancement Enhancement, improvement, extension do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. labels Mar 13, 2026
@ske-prow
Copy link
Copy Markdown

ske-prow bot commented Mar 13, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign xoxys for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ske-prow ske-prow bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Mar 13, 2026
@jastBytes jastBytes force-pushed the feat/STACKITSKE-6021-pod-identity-webhook branch 2 times, most recently from fb04800 to 6d649ce Compare March 23, 2026 13:13
@jastBytes jastBytes requested a review from timebertt March 24, 2026 09:24
@timebertt timebertt marked this pull request as ready for review March 25, 2026 07:24
Copilot AI review requested due to automatic review settings March 25, 2026 07:24
@ske-prow ske-prow bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 25, 2026
@timebertt timebertt marked this pull request as draft March 25, 2026 07:24
@ske-prow ske-prow bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 25, 2026
@timebertt
Copy link
Copy Markdown
Member

Oops, accidentally marked this PR as ready for review, sorry about that.

Copy link
Copy Markdown
Member

@timebertt timebertt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, looking forward to this feature :)

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new STACKIT Pod Identity Webhook component and wires it into the extension’s seed control-plane and shoot system components charts/values so that workload identity can be enforced via a mutating admission webhook.

Changes:

  • Add a new stackit-pod-identity-webhook image entry and image name constant.
  • Add new Helm charts for the webhook (seed-controlplane: Deployment/Service/RBAC/PDB; shoot-system-components: MutatingWebhookConfiguration).
  • Extend the controlplane values provider and tests to generate TLS/CA-related chart values and required secrets.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
pkg/stackit/types.go Adds a constant for the webhook name.
pkg/controller/controlplane/valuesprovider.go Generates webhook TLS secret config and passes chart values for seed + shoot charts.
pkg/controller/controlplane/valuesprovider_test.go Extends expected chart values and fake secrets for the new component.
imagevector/images.yaml Adds the webhook image (repo/tag+digest).
imagevector/images.go Adds ImageNameStackitPodIdentityWebhook.
charts/internal/shoot-system-components/charts/stackit-pod-identity-webhook/* New shoot chart for MutatingWebhookConfiguration.
charts/internal/seed-controlplane/charts/stackit-pod-identity-webhook/* New seed chart for webhook runtime resources (Deployment/Service/RBAC/PDB).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jastBytes jastBytes force-pushed the feat/STACKITSKE-6021-pod-identity-webhook branch 2 times, most recently from 8e62bb2 to 6ad65f7 Compare March 30, 2026 13:12
@jastBytes
Copy link
Copy Markdown
Contributor Author

Post review changes implemented and tested via ondemand. All working now. One question open from my point of view. See comment in code.

@jastBytes jastBytes force-pushed the feat/STACKITSKE-6021-pod-identity-webhook branch from 3b068dc to c9b9220 Compare March 31, 2026 08:50
@jastBytes jastBytes requested a review from timebertt March 31, 2026 08:51
@jastBytes jastBytes marked this pull request as ready for review April 8, 2026 12:57
@ske-prow ske-prow bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 8, 2026
@jastBytes jastBytes force-pushed the feat/STACKITSKE-6021-pod-identity-webhook branch from 92c143b to cfbe8a2 Compare April 8, 2026 13:04
@jastBytes
Copy link
Copy Markdown
Contributor Author

This is finally finished. It is hidden behind a feature flag. The feature is disabled by default. Behavior of the webhook and the featureflag has been tested in an ondemand.

@jastBytes jastBytes requested a review from maboehm April 9, 2026 09:13
… since this is automatically added by gardener
@jastBytes jastBytes requested review from crigertg and timebertt April 10, 2026 09:15
Copy link
Copy Markdown
Member

@timebertt timebertt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, this looks great. Thanks for addressing my suggestions!

jastBytes and others added 4 commits April 10, 2026 12:08
…webhook/templates/vpa.yaml

Co-authored-by: Tim Ebert <timebertt@gmail.com>
… configurations for the pod identity webhook across multiple chart components.

This refinement includes several operational improvements:
- Exposes an additional metrics port on the service definition.
- Configures resource requests using VPA definitions, enforcing usage policies for the webhook pod.
- Updates the mutating webhook configuration with a timeout and refined namespace selectivity.
…abels

Adds Prometheus scraping labels and configurations for the pod identity webhook,
allowing metrics exposition via standard Kubernetes service definitions..
Sets the stackit-pod-identity-webhook to permanently disabled in the values files for the seed-controlplane and the shoot-system-components.
@jastBytes jastBytes requested a review from timebertt April 14, 2026 09:57
cpu: {{ .Values.vpa.resourcePolicy.maxAllowed.cpu }}
memory: {{ .Values.vpa.resourcePolicy.maxAllowed.memory }}
controlledValues: RequestsOnly
controlledValues: RequestsAndLimits
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't set limits in the deployment 👀

Comment on lines +23 to +25
prometheus.io/scrape: "true"
prometheus.io/port: {{ .Values.metrics.port | quote }}
prometheus.io/name: "{{ .Release.Name }}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/enhancement Enhancement, improvement, extension size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants